﻿namespace MefContrib.Models.Provider
{
    using System;
    using System.Collections.Generic;

    /// <summary>
    /// Defines an abstract description of an export.
    /// </summary>
    public class ExportDescription
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="ExportDescription"/> class.
        /// </summary>
        public ExportDescription()
        {
        }

        /// <summary>
        /// Gets or sets the name of the contact.
        /// </summary>
        /// <value>A <see cref="String"/> containing the name of the contract.</value>
        public string ContractName { get; set; }

        /// <summary>
        /// Gets or sets the type of the contract.
        /// </summary>
        public Type ContractType { get; set; }

        /// <summary>
        /// Gets or sets the name of the member.
        /// </summary>
        /// <value>A <see cref="String"/> containing the name of the member.</value>
        public string MemberName { get; set; }

        /// <summary>
        /// Gets or sets the metadata associated with the export.
        /// </summary>
        /// <value>An <see cref="IDictionary{TKey,TValue}"/> object.</value>
        public IDictionary<string, object> Metadata { get; set; }
    }
}